<?php

namespace Sistema\AdminBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Sistema\AdminBundle\Entity\Partido
 *
 * @ORM\Table(name="Partido")
 * @ORM\Entity
 */
class Partido
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var \DateTime $fecha
     *
     * @ORM\Column(name="fecha", type="date", nullable=false)
     */
    private $fecha;

    /**
     * @var \DateTime $horario
     *
     * @ORM\Column(name="horario", type="time", nullable=false)
     */
    private $horario;

    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     *
     * @ORM\ManyToMany(targetEntity="Arbitro", inversedBy="idPartido")
     * @ORM\JoinTable(name="Arbitro_de_partido",
     *   joinColumns={
     *     @ORM\JoinColumn(name="id_partido", referencedColumnName="id")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="id_arbitro", referencedColumnName="id")
     *   }
     * )
     */
    private $idArbitro;

    /**
     * @var Fecha
     *
     * @ORM\ManyToOne(targetEntity="Fecha")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_fecha", referencedColumnName="id", onDelete="CASCADE")
     * })
     */
    private $idFecha;

    /**
     * @var Cancha
     *
     * @ORM\ManyToOne(targetEntity="Cancha")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_cancha", referencedColumnName="id")
     * })
     */
    private $idCancha;
    
    /**
     * @ORM\OneToMany(targetEntity="PartidoDeEquipo", mappedBy="idPartido")
     */
    private $idEquipo;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->idArbitro = new \Doctrine\Common\Collections\ArrayCollection();
    }
    
    public function __toString() {
        return 'Nro: '.$this->getId();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set fecha
     *
     * @param \DateTime $fecha
     * @return Partido
     */
    public function setFecha($fecha)
    {
        $this->fecha = $fecha;
    
        return $this;
    }

    /**
     * Get fecha
     *
     * @return \DateTime 
     */
    public function getFecha()
    {
        return $this->fecha;
    }

    /**
     * Set horario
     *
     * @param \DateTime $horario
     * @return Partido
     */
    public function setHorario($horario)
    {
        $this->horario = $horario;
    
        return $this;
    }

    /**
     * Get horario
     *
     * @return \DateTime 
     */
    public function getHorario()
    {
        return $this->horario;
    }

    /**
     * Add idArbitro
     *
     * @param Sistema\AdminBundle\Entity\Arbitro $idArbitro
     * @return Partido
     */
    public function addIdArbitro(\Sistema\AdminBundle\Entity\Arbitro $idArbitro)
    {
        $this->idArbitro[] = $idArbitro;
    
        return $this;
    }

    /**
     * Remove idArbitro
     *
     * @param Sistema\AdminBundle\Entity\Arbitro $idArbitro
     */
    public function removeIdArbitro(\Sistema\AdminBundle\Entity\Arbitro $idArbitro)
    {
        $this->idArbitro->removeElement($idArbitro);
    }

    /**
     * Get idArbitro
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getIdArbitro()
    {
        return $this->idArbitro;
    }

    /**
     * Set idFecha
     *
     * @param Sistema\AdminBundle\Entity\Fecha $idFecha
     * @return Partido
     */
    public function setIdFecha(\Sistema\AdminBundle\Entity\Fecha $idFecha = null)
    {
        $this->idFecha = $idFecha;
    
        return $this;
    }

    /**
     * Get idFecha
     *
     * @return Sistema\AdminBundle\Entity\Fecha 
     */
    public function getIdFecha()
    {
        return $this->idFecha;
    }

    /**
     * Set idCancha
     *
     * @param Sistema\AdminBundle\Entity\Cancha $idCancha
     * @return Partido
     */
    public function setIdCancha(\Sistema\AdminBundle\Entity\Cancha $idCancha = null)
    {
        $this->idCancha = $idCancha;
    
        return $this;
    }

    /**
     * Get idCancha
     *
     * @return Sistema\AdminBundle\Entity\Cancha 
     */
    public function getIdCancha()
    {
        return $this->idCancha;
    }

    /**
     * Add idEquipo
     *
     * @param Sistema\AdminBundle\Entity\PartidoDeEquipo $idEquipo
     * @return Partido
     */
    public function addIdEquipo(\Sistema\AdminBundle\Entity\PartidoDeEquipo $idEquipo)
    {
        $this->idEquipo[] = $idEquipo;
    
        return $this;
    }

    /**
     * Remove idEquipo
     *
     * @param Sistema\AdminBundle\Entity\PartidoDeEquipo $idEquipo
     */
    public function removeIdEquipo(\Sistema\AdminBundle\Entity\PartidoDeEquipo $idEquipo)
    {
        $this->idEquipo->removeElement($idEquipo);
    }

    /**
     * Get idEquipo
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getIdEquipo()
    {
        return $this->idEquipo;
    }
}
